#include <iostream>

using namespace std;

void change();
void getNext(int o_c,int o_r,int& n_c,int& n_r);

int n[10][10]={0};
int t1=1,t2=0;
int col=0,row=0;
int main(int argc,char* argv[])
{
	int t=1;
	cin>>col>>row;
	int r=0,c=0;
	int rr=0,cc=0;
	for(int i=1;i<=col*row;i++)
	{
		n[r][c]=i;
		getNext(c,r,cc,rr);
		c=cc;
		r=rr;

	}
	for(int i=0;i<row;i++)
	{
		for(int j=0;j<col;j++)
			if(j==col-1)
				cout<<n[i][j];
			else
				cout<<n[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}

void getNext(int o_c,int o_r,int& n_c,int& n_r)
{
	if(o_c+t1>=col||o_r+t2>=row||o_c+t1<0||o_r+t2<0)
		change();
	else if(n[o_r+t2][o_c+t1]!=0)
		change();
	n_c=o_c+t1;
	n_r=o_r+t2;
}

void change()
{
	if(t1==1&&t2==0)
		t1=0,t2=1;
	else if(t1==0&&t2==1)
		t1=-1,t2=0;
	else if(t1==-1,t2==0)
		t1=0,t2=-1;
	else if(t1==0,t2==-1)
		t1=1,t2=0;
}
